#pragma once
#ifndef SYPX_RESOURCEMANAGER
#define SYPX_RESOURCEMANAGER

#include <map>
#include "Singleton.h"
#include "Resource.h"

namespace SypX
{
	class SYPXAPI ResourceManager :	public Singleton<ResourceManager>
	{
	public:
		Resource* checkResource(const String& filename);
		void registerResource(Resource* res);
		///Removes an individual Resource from the engine
		void removeResource(Resource* res);
	protected:
		std::map<String, Resource*> registry;
		ResourceManager(void);
		~ResourceManager(void);

		///Must be a friend to allow base Singleton class to new ResourceManager
		friend class Singleton<ResourceManager>;
	};

}

#endif